LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Closed Thread
  Search this Thread
Old 04-05-2019, 12:56 PM   #1
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Rep: Reputation: Disabled
What is wrong with these scripts?


1. install.sh
Code:
#! / bin / bash

 #sudo rule to rule users
 LINE_SUDOERS = "ALL ALL = NOPASSWD: /opt/dislocker-gui/util-root.sh"

 mkdir -p / opt / dislocker-gui

 cp -r app / * / opt / dislocker-gui /
 cp shortcut / dislocker-gui.desktop / usr / share / applications /

 #check if the line already exists in the / etc / sudoers file
 LINE_SUDOERS_EXISTS = $ (cat / etc / sudoers | grep -q "$ LINE_SUDOERS"; echo $?)

 #if line doesn’t exist yet ...
 if [$ LINE_SUDOERS_EXISTS]
 then
     echo $ LINE_SUDOERS >> / etc / sudoers fi
2. util-root.sh
Code:
#! / bin / bash

 # dislocker-gui-zenity
 #This util-root.sh script contains the commands used by the dislocker-gui.sh
 #that need to be run as root user

 DFILE_LOCATION = "/ tmp / DFILE"

 ACTION = $ 1
 case $ ACTION in
   "clearTMP")
       rm -f /tmp/fdisk.txt
       rm -f /tmp/drive_selection_list.txt
       ;;

   "checkBitLockerDriveMounted")
       DRIVE_MOUNTPOINT = $ 2
       echo $ (mount | grep -q "$ DRIVE_MOUNTPOINT \ | $ DFILE_LOCATION"; echo $?)
       ;;

   "isBitlockerDrive")
       DRIVE = $ 2
       echo $ (dislocker-fuse -r -V "/ dev / $ DRIVE" | grep -q "None of the decryption mean is decrypting the keys."; echo $?)
       ;;

   "createMountDir")
       DRIVE_MOUNTPOINT = $ 2
       mkdir -p $ DRIVE_MOUNTPOINT
       mkdir -p $ DFILE_LOCATION
       ;;

   "decrypt")
       DRIVE_SELECTED = $ 2
       DRIVE_PASSWORD = $ 3
       DRIVE_UID = $ 4
       DRIVE_GID = $ 5
       #if the output contains the string "Can't decrypt correctly the VMK."  it means the password comes is wrong
        echo $ (dislocker-fuse -v -V / dev / "$ DRIVE_SELECTED" -u $ DRIVE_PASSWORD - $ DFILE_LOCATION -o uid = $ DRIVE_UID, gid = $ DRIVE_GID | grep -q "Can't decrypt correctly the VMK." ; echo $?)
       ;;

   "mount")
       DRIVE_MOUNTPOINT = $ 2
       DRIVE_UID = $ 3
       DRIVE_GID = $ 4
       if [-f $ DFILE_LOCATION / dislocker-file];
       then
           mount -o loop, rw, uid = $ DRIVE_UID, gid = $ DRIVE_GID $ DFILE_LOCATION / dislocker-file $ DRIVE_MOUNTPOINT
       else
        zenity --error --title = "Error" --no-wrap --text = "bitLock mount error"
       umount $ DRIVE_MOUNTPOINT 2> / dev / null
       umount $ DFILE_LOCATION 2> / dev / null
       exit 1
       fi
       ;;

   "umount")
       DRIVE_MOUNTPOINT = $ 2
       umount $ DRIVE_MOUNTPOINT
       umount $ DFILE_LOCATION
       ;;

   "getListNTFSDrives")
       #get list of NTFS / exFAT / HPFS drives
 # fdisk -l |  grep NTFS |  cut -c6-9> /tmp/fdisk.txt
	 lsblk -l -n> /tmp/fdisk.txt
     ;;
 esac
3. dislocker-gui.sh
Code:
#! / bin / bash

 DRIVE_MOUNTPOINT = "/ media / BitLockerDrive"
 d_uid = `id -u`
 d_gid = `id -g`


 function openFileBrowser
 {
     if type nautilus 2> / dev / null
     then
         FILE_BROWSER = "nautilus"
     elif type dolphin 2> / dev / null
     then
         FILE_BROWSER = "dolphin"
     elif type thunar 2> / dev / null
     then
         FILE_BROWSER = "thunar"
     else
         zenity --info --title = "File Browser Not Found"
                       --text = "Nautilus / Dolphin / Thunar not found \ n \ nOpen your file browser at $ DRIVE_MOUNTPOINT"
         exit
     fi
     $ ($ FILE_BROWSER $ DRIVE_MOUNTPOINT)
 }

 function checkDependencies
 {
     if!  type zenity> / dev / null
     then
         echo "Missing dependency 'Zenity'. Please install it before using this script.
                 \ n \ nFor Ubuntu: sudo apt install zenity
                 \ n \ nFor Fedora: sudo dnf install zenity ";
         exit;
     fi


     if!  type dislocker-fuse> / dev / null
     then
         zenity --error --title = "Dislocker Not Found" --no-wrap --text = "Missing dependency 'Dislocker'. Please install it before using this script.
                                                             \ n \ nFor Ubuntu: sudo apt install dislocker
                                                             \ n \ nFor Fedora: sudo dnf install fuse-dislocker "
         exit;
     fi
 }

 function clearTMPFiles
 {
     sudo /opt/dislocker-gui/util-root.sh "clearTMP"
 }

 function errorMessage
 {
     MESSAGE = $ 1
     zenity --error --title = "Error" --no-wrap --text = "$ 1"
 }

 function getListNTFSDrives
 {
     sudo /opt/dislocker-gui/util-root.sh "getListNTFSDrives"
 }

 function getSelectionListBitlockerDrive
 {
     #get list of NTFS / exFAT / HPFS drives
     getListNTFSDrives

     #if there are any ntfs / exFAT / HPFS drives attached
     if [-f "/tmp/fdisk.txt"]
     then
         #for each candidate drive if it is a bitlocker drive
         for drive in $ (cat /tmp/fdisk.txt)
         do
         #if it is a valid bitlocker drive
             if [$ (isBitlockerDrive $ drive) = "0"]
             then
                 size = $ (getDiskSizeGB $ drive)
                 brandNModel = $ (getDiskBrandNModel $ drive)

                 #creates a table for the drive selection interface.  FALSE indicates that the option is not selected.
                 echo "FALSE $ drive $ brandNModel $ size" >> /tmp/drive_selection_list.txt
             fi
         done
     else
         errorBitlockerDriveNotFound
         exit 1
     fi

 }

 function errorBitlockerDriveNotFound
 {
     errorMessage "No Bitlocker drives found!"
 }

 function getDiskFromPartition
 {
     PARTITION = $ 1
     echo $ (echo $ PARTITION | cut -c1-3)
 }

 function getDiskSizeGB
 {
     PARTITION = $ 1
     lsblk / dev / $ PARTITION -n -o SIZE

 }

 function getDiskBrandNModel
 {
     PARTITION = $ 1
     DISK = $ (getDiskFromPartition $ PARTITION)

     #the disk vendor of the command line
     #sed command replace spaces with underscores
 # echo $ (lsblk -o NAME, VENDOR, MODEL --nodeps | grep $ DISK | grep -v $ PARTITION | cut -c8- | sed -e 's / / _ / g')
     echo $ (lsblk -o NAME, VENDOR, MODEL --nodeps | grep $ DISK | grep -v $ PARTITION | cut-d '' -s -f 2- | sed -r 's / \ s {2,} / / g '| sed -e' s / / _ / g ')
 }

 function isBitlockerDrive
 {
     DRIVE = $ 1

     #return 0 if true
     #return 1 if false
     echo $ (sudo /opt/dislocker-gui/util-root.sh "isBitlockerDrive" $ DRIVE)
 }

 function mountDrive
 {
     DRIVE = $ 1

     sudo /opt/dislocker-gui/util-root.sh "createMountDir" $ DRIVE_MOUNTPOINT

     #loop until the user supplies a valid password
     PASSWORD_WRONG = 0
     while ["$ PASSWORD_WRONG" = "0"]
     do
         DRIVE_PASSWORD = $ (zenity --password --title = "Locked Drive" --text = "Please type the password for the BitLocker drive")
         #if the password field is not empty
         if [-n "$ DRIVE_PASSWORD"]
         then
             #try to unlock the drive
             PASSWORD_WRONG = $ (sudo /opt/dislocker-gui/util-root.sh "decrypt" $ DRIVE $ DRIVE_PASSWORD $ d_uid $ d_gid)

             #if the output contains the string "Can't decrypt correctly the VMK."  it means the password comes is wrong
             if ["$ PASSWORD_WRONG" = "0"]
             then
                 errorMessage "Wrong Bitlocker password! Please try again."
             fi
         else
             errorMessage "No password supplied!"
         fi
     done

     sudo /opt/dislocker-gui/util-root.sh "mount" $ DRIVE_MOUNTPOINT $ d_uid $ d_gid

     #open the file directory
     openFileBrowser
   }

 function actionMountDrive
 {
     clearTMPFiles

     getSelectionListBitlockerDrive

     #if there is any valid bitlocker drive
     if [-f "/tmp/drive_selection_list.txt"]
     then
         DRIVE_SELECT_LIST = $ (cat /tmp/drive_selection_list.txt)
         DRIVE_SELECTED = $ (zenity --list --title = "BitLocker Drive List" \
                                 --text = "Select the Bitlocker drive to be mounted:" \
                                 --radiolist --multiple \
                                 --width = "450" ​​\
                                 --column '' --column 'Drive' --column 'Brand / Model' --column 'Size' \
                                 $ DRIVE_SELECT_LIST)

         #if a drive was selected
         if [-n "$ DRIVE_SELECTED"]
         then
             mountDrive $ DRIVE_SELECTED
         else
             errorMessage "No Bitlocker drive selected!"
         fi
         clearTMPFiles
     else
         errorBitlockerDriveNotFound
     fi

 }

 function actionUmountDrive
 {
     sudo /opt/dislocker-gui/util-root.sh "umount" $ DRIVE_MOUNTPOINT
 }

 function checkBitlockerDriveMounted
 {
     echo $ (sudo /opt/dislocker-gui/util-root.sh "checkBitLockerDriveMounted" $ DRIVE_MOUNTPOINT)
 }

 checkDependencies

 #check if there is any bitlocker drive currently mounted
 if ["$ (checkBitlockerDriveMounted)" = "0"]
 then
     zenity --question --title = "Bitlocker Drive already mounted" --no-wrap \
                       --text = "There is a Bitlocker drive currently mounted. \ n \ nWhat would you like to do?"  \
                       --ok-label = "Remove it safely" --cancel-label = "Nothing"

     #if the user clicked the ok button (Remove it Safely)
     if ["$?"  = "0"]
     then
         actionUmountDrive
     fi
 else
     actionMountDrive
 fi

Last edited by PROBLEMCHYLD; 04-05-2019 at 01:32 PM.
 
Old 04-05-2019, 01:02 PM   #2
scasey
Senior Member
 
Registered: Feb 2013
Location: Tucson, AZ, USA
Distribution: CentOS 7.6
Posts: 2,918

Rep: Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007
space slash space in your path names is wrong.
Please remove all such and try your scripts again.
 
Old 04-05-2019, 01:17 PM   #3
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by scasey View Post
space slash space in your path names is wrong.
Please remove all such and try your scripts again.
This is how it is on the website

https://translate.google.com/transla...ed&prev=search
 
Old 04-05-2019, 01:25 PM   #4
rtmistler
Moderator
 
Registered: Mar 2011
Location: MA, USA
Distribution: MINT Debian, Angstrom, SUSE, Ubuntu, Debian
Posts: 7,647
Blog Entries: 13

Rep: Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163Reputation: 3163
Quote:
Originally Posted by PROBLEMCHYLD View Post
1. install.sh
Code:
#! / bin / bash
2. util-root.sh
Code:
#! / bin / bash
3. dislocker-gui.sh
Code:
#! / bin / bash
This script?

There are three of them. Comprising nearly 300 lines of code.

Have you tried to run them?

If you tried to run them, did you enable bash debugging when you've tried to run them?

Have you used shellcheck on them?

What have you done beyond copied these very lengthy scripts into a thread question?

EDIT: I see that you've grabbed them from some website.

Quote:
Originally Posted by PROBLEMCHYLD View Post
Great. Seems to be the last update to that site was back in 2016. I do not recommend you grab scripts if you cannot contend without seemingly reviewing them and debugging them on your own. I fully understand that you downloaded these, and there is some documentation about them along with links on that site, also speaking about an upgraded app. That's about as far as I went. The scripts are very involved. Unless you expect to become fully versed in what those scripts do, by your own efforts, then I'd highly recommend you avoid running them. Meanwhile, I do recommend using shellcheck to check the syntax, but I'd also recommend that if/when you do run them, that you limit what they do iteratively until you fully understand them.

Last edited by rtmistler; 04-05-2019 at 01:32 PM.
 
3 members found this post helpful.
Old 04-05-2019, 01:30 PM   #5
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by rtmistler View Post
This script?

There are three of them. Comprising nearly 300 lines of code.

Have you tried to run them?

If you tried to run them, did you enable bash debugging when you've tried to run them?

Have you used shellcheck on them?

What have you done beyond copied these very lengthy scripts into a thread question?
Yes, nothing happens on those scripts. Title is fixed for you and the link below....


https://www.linuxquestions.org/quest...nd-4175651509/

Last edited by PROBLEMCHYLD; 04-05-2019 at 01:32 PM.
 
Old 04-05-2019, 01:56 PM   #6
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by rtmistler View Post
I do not recommend you grab scripts if you cannot contend without seemingly reviewing them and debugging them on your own. I fully understand that you downloaded these, and there is some documentation about them along with links on that site, also speaking about an upgraded app. That's about as far as I went. The scripts are very involved. Unless you expect to become fully versed in what those scripts do, by your own efforts, then I'd highly recommend you avoid running them. Meanwhile, I do recommend using shellcheck to check the syntax, but I'd also recommend that if/when you do run them, that you limit what they do iteratively until you fully understand them.
That's like saying, everytime I have car trouble I should learn auto-mechanics. Not going to happen, I specialized in other fields and scripting isn't one of them. It might take some time whether I have to pay for a 3rd party app or someone savvy and skilled enough to fix it so others as well as I can benefit. Either way!!!

Last edited by PROBLEMCHYLD; 04-05-2019 at 01:58 PM.
 
Old 04-05-2019, 03:09 PM   #7
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=14, FreeBSD_10{.0|.1|.2}
Posts: 5,082
Blog Entries: 11

Rep: Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016
This is not how it works in the Programmng forum.

Asking others to try to understand and debug scripts from other sources for you, with no useful debugging information or effort on your part is not a proper use of this forum.

Also, this would appear to be a sort of duplicate of your previous post on the same subject. Please do not post the same question multiple times in different forums.

Please review the Site FAQ for guidance in posting your questions and general forum usage.
 
3 members found this post helpful.
Old 04-05-2019, 03:15 PM   #8
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by astrogeek View Post
This is not how it works in the Programmng forum.

Asking others to try to understand and debug scripts from other sources for you, with no useful debugging information or effort on your part is not a proper use of this forum.

Also, this would appear to be a sort of duplicate of your previous post on the same subject. Please do not post the same question multiple times in different forums.

Please review the Site FAQ for guidance in posting your questions and general forum usage.
How do you expect me to debug something when I don't know how? Sometimes people lack comprehension such as yourself. You can't expect someone to write scripts or debug when they don't have the skill. Just like the mechanic example. I'm NOT a mechanic, and when I have car troubles, I go to someone experienced. Can you comprehend that?
 
Old 04-05-2019, 03:48 PM   #9
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=14, FreeBSD_10{.0|.1|.2}
Posts: 5,082
Blog Entries: 11

Rep: Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016
The only thing expected of any member is that they make effort to participate within the very simple guidelines posted in the Site FAQ and LQ Rules. I ask you again to please review the Site FAQ for guidance in posting your questions and general forum usage.

You have been a member here long enough to have learned how that works, please review and consider. Others here at LQ are always willing to help when asked respectfully, just as passing motorists are willing to stop and volunteer assistance when you have suffered a breakdown on the hiway. That is a much different case than towing someone else's broken down vehicle to the roadside and asking others to fix it for you.

Please be respectful of the time volunteered by others and help them to help you.
 
3 members found this post helpful.
Old 04-05-2019, 04:01 PM   #10
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by astrogeek View Post
The only thing expected of any member is that they make effort to participate within the very simple guidelines posted in the Site FAQ and LQ Rules. I ask you again to please review the Site FAQ for guidance in posting your questions and general forum usage.

You have been a member here long enough to have learned how that works, please review and consider. Others here at LQ are always willing to help when asked respectfully, just as passing motorists are willing to stop and volunteer assistance when you have suffered a breakdown on the hiway. That is a much different case than towing someone else's broken down vehicle to the roadside and asking others to fix it for you.

Please be respectful of the time volunteered by others and help them to help you.
Again, the posts you're making isn't helping me or someone who might have the same issue in the future. I didn't ask you to hold my hand, I asked how to fixed a problem I don't know how. Some of you so-called Linux gung-ho users are quick to post anything but a solution. Thanks for nothing, people like you always assume no one has tried any methods. Only thing that beats failure is success," NOT " trying!!! I think its funny how some people that don't provide a solution are some of the same who wants a donation. FOH!!! I'll be moving along because you're getting on my last nerve and my Doctor said to not get upset and keep my blood pressure down. Thanks again for nothing.

Last edited by PROBLEMCHYLD; 04-05-2019 at 04:10 PM.
 
Old 04-05-2019, 04:30 PM   #11
scasey
Senior Member
 
Registered: Feb 2013
Location: Tucson, AZ, USA
Distribution: CentOS 7.6
Posts: 2,918

Rep: Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007Reputation: 1007
Quote:
Originally Posted by PROBLEMCHYLD View Post
How do you expect me to debug something when I don't know how? Sometimes people lack comprehension such as yourself. You can't expect someone to write scripts or debug when they don't have the skill. Just like the mechanic example. I'm NOT a mechanic, and when I have car troubles, I go to someone experienced. Can you comprehend that?
On the other hand, can you comprehend that we're all volunteers, as you are, and are not particularly interested in volunteering to debug your scripts for you? Do you expect your mechanic to fix your car for free?
As has been said, we're here to help. You've been given some suggestions to try. If you're not willing to try and learn, there's not much we can do for you.

Quote:
Originally Posted by PROBLEMCHYLD View Post
Again, the posts you're making isn't helping me or someone who might have the same issue in the future. I didn't ask you to hold my hand, I asked how to fixed a problem I don't know how. Some of you so-called Linux gung-ho users are quick to post anything but a solution. Thanks for nothing, people like you always assume no one has tried any methods. Only thing that beats failure is success," NOT " trying!!! I think its funny how some people that don't provide a solution are some of the same who wants a donation. FOH!!! I'll be moving along because you're getting on my last nerve and my Doctor said to not get upset and keep my blood pressure down. Thanks again for nothing.
I don't agree. You have been given several good and helpful suggestions...things which will provide a solution.

That said, as my Daddy used to say, "So long, C.A."

Last edited by scasey; 04-05-2019 at 04:33 PM.
 
2 members found this post helpful.
Old 04-05-2019, 04:46 PM   #12
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by scasey View Post
On the other hand, can you comprehend that we're all volunteers, as you are, and are not particularly interested in volunteering to debug your scripts for you? Do you expect your mechanic to fix your car for free?
As has been said, we're here to help. You've been given some suggestions to try. If you're not willing to try and learn, there's not much we can do for you.


I don't agree. You have been given several good and helpful suggestions...things which will provide a solution.

That said, as my Daddy used to say, "So long, C.A."
Wrong!!!

The original scripts doesn't have any spaces and it still doesn't work


https://github.com/raryelcostasouza/...ob/master/app/

Stop making assumptions about me NOT applying any methods, you just make yourself and others look foolish when you think you know everything.

BTW your post hasn't helped either, so why are you here? For the ride-along passenger? You don't know how to lead so you piggyback off others?

Last edited by PROBLEMCHYLD; 04-05-2019 at 04:53 PM.
 
Old 04-05-2019, 05:00 PM   #13
PROBLEMCHYLD
Member
 
Registered: Apr 2015
Posts: 730

Original Poster
Rep: Reputation: Disabled
What was said thats insulting? My spectacular vernacular? I guess when one can't manage real life they micromanage forums...

Last edited by PROBLEMCHYLD; 04-05-2019 at 05:05 PM.
 
Old 04-05-2019, 05:09 PM   #14
astrogeek
Moderator
 
Registered: Oct 2008
Distribution: Slackware [64]-X.{0|1|2|37|-current} ::12<=X<=14, FreeBSD_10{.0|.1|.2}
Posts: 5,082
Blog Entries: 11

Rep: Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016Reputation: 3016
Personal attacks, name calling and general rudeness are also not permitted at LQ. For the last time in this thread I urge you to please review the Site FAQ and LQ Rules for guidance in proper use of the forums.

If you have other questions not answered in those links please contact us through contact links available on any page.

As you have not made effort to interact with others in a respectful manner this thread is now being closed.

When posting your questions in future please make effort to communicate what problem you are trying to solve, what you have tried and include any error messages or examples which will help others understand your specific problem and respond accordingly.

And please make effort to be more respectful of others. Name calling and insulting other members is a no-go here.

Thread closed.
 
5 members found this post helpful.
  


Closed Thread


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
rsync uses wrong directory, has wrong size but right file count? brianpbarnes Linux - Software 1 02-23-2009 05:48 PM
Fortran - G95 - Wrong Syntax or wrong compiler settings laucian Programming 1 03-21-2008 10:18 AM
2domain but backingup the wrong one .. what am i doing wrong salimmeethoo Linux - Server 3 10-17-2007 10:43 AM
What is wrong with reiserfs? wrong free space mesh2005 Linux - General 1 05-03-2007 07:21 AM
my time is wrong and calender is also wrong Paxmaster Linux - General 6 12-16-2004 12:46 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 06:47 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration